package issr.market.init;

import java.util.List;

import javax.servlet.ServletContext;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.log4j.Logger;

public class Configuration {
	
	private static Logger logger = Logger.getLogger(Configuration.class);
	
	public static PropertiesConfiguration prop;
	
	public static String ricevuteDirectory;
	public static List<String> ricevutaHeaderKeysList;
	public static List<String> ricevutaContentKeysList;
	
	public static int validitaRicevuta;
	
	
	
	@SuppressWarnings("unchecked")
	public static void init(ServletContext context, String cfgFile) throws Exception{
		
		String conf = cfgFile;
		if(cfgFile == null){
			conf = "issr.properties";
		}
		try{
			if(prop == null){
				logger.info("inizio caricamento proprieta'");
				prop = new PropertiesConfiguration(conf);
				
				ricevuteDirectory = prop.getString("issr.ricevuteDirectory");
				ricevutaHeaderKeysList = prop.getList("ricevuta_header_fields");
				ricevutaContentKeysList = prop.getList("ricevuta_content_fields");
				
				validitaRicevuta = prop.getInt("validita_ricevuta");
				
				
				logger.info("fine caricamento proprieta'");
				
			}
		}
		catch(ConfigurationException e){
			logger.error(e, e);
			throw e;
		}
	}
	
//	public static void init(){
//		ruoloCombo = new ArrayList<Ruolo>();
//		for(int i=1; i<7;i++)
//			ruoloCombo.add(createRuolo(i));
//	
//		ordinamentoCombo = initOrdinamentoCombo();
//	}
	
	/*private static Ruolo createRuolo(int numRuolo){
		Ruolo ruolo = new Ruolo();
		
		switch(numRuolo){
		
		case Constants.NUM_RUOLO_ADMIN_LOCALE:
			ruolo.setPrefix(Constants.NUM_RUOLO_ADMIN_LOCALE);
			ruolo.setName(Constants.RUOLO_ADMIN_LOCALE);
			break;
		case Constants.NUM_RUOLO_ADDETTO_RECLAMI:
			ruolo.setPrefix(Constants.NUM_RUOLO_ADDETTO_RECLAMI);
			ruolo.setName(Constants.RUOLO_ADDETTO_RECLAMI);
			break;
		case Constants.NUM_RUOLO_ANALISTA_INDICI:
			ruolo.setPrefix(Constants.NUM_RUOLO_ANALISTA_INDICI);
			ruolo.setName(Constants.RUOLO_ANALISTA_INDICI);
			break;
		case Constants.NUM_RUOLO_GESTORE_CREDENZIALI:
			ruolo.setPrefix(Constants.NUM_RUOLO_GESTORE_CREDENZIALI);
			ruolo.setName(Constants.RUOLO_GESTORE_CREDENZIALI);
			break;
		case Constants.NUM_RUOLO_MAGAZZINIERE:
			ruolo.setPrefix(Constants.NUM_RUOLO_MAGAZZINIERE);
			ruolo.setName(Constants.RUOLO_MAGAZZINIERE);
			break;
		case Constants.NUM_RUOLO_OPERATORE_BANCO:
			ruolo.setPrefix(Constants.NUM_RUOLO_OPERATORE_BANCO);
			ruolo.setName(Constants.RUOLO_OPERATORE_BANCO);
			break;
		}
		return ruolo;
	}
	
	private static List<Ordinamento> initOrdinamentoCombo(){
		List<Ordinamento> list = new ArrayList<Ordinamento>();
		Ordinamento ordinamento = new Ordinamento();
		
		ordinamento.setName("Default");
		ordinamento.setPrefix("");
		list.add(ordinamento);
		
		ordinamento = new Ordinamento();
		ordinamento.setName("Data di Registrazione");
		ordinamento.setPrefix("dataRegistrazione");
		list.add(ordinamento);
		
		ordinamento = new Ordinamento();
		ordinamento.setName("Nome Utente");
		ordinamento.setPrefix("login");
		list.add(ordinamento);
		
		ordinamento = new Ordinamento();
		ordinamento.setName("Ruolo");
		ordinamento.setPrefix("ruolo");
		list.add(ordinamento);
		
		ordinamento = new Ordinamento();
		ordinamento.setName("Scadenza Password");
		ordinamento.setPrefix("scadenzaPassword");
		list.add(ordinamento);
		
		ordinamento = new Ordinamento();
		ordinamento.setName("Scadenza Registrazione");
		ordinamento.setPrefix("scadenzaRegistrazione");
		list.add(ordinamento);
		
		return list;
		
	}*/

}
